.\"
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2021-2025 The FreeBSD Foundation
.\"
.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
.\" the FreeBSD Foundation.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd August 19, 2025
.Dt IWLWIFI 4
.Os
.Sh NAME
.Nm iwlwifi
.Nd Intel IEEE 802.11a/b/g/n/ac/ax/be wireless network driver
.Sh SYNOPSIS
The driver will auto-load without any user interaction using
.Xr devmatch 8
if enabled in
.Xr rc.conf 5 .
.Pp
Only if auto-loading is explicitly disabled, place the following
lines in
.Xr rc.conf 5
to manually load the driver as a module at boot time:
.Bd -literal -offset indent
kld_list="${kld_list} if_iwlwifi"
.Ed
.Pp
The driver should automatically load any
.Xr iwlwififw 4
firmware needed for the particular chipset.
See section
.Sx "FILES"
below for how to install the firmware.
.Pp
It is not possible to load the driver from
.Xr loader 8 .
.Sh DESCRIPTION
The
.Nm
driver provides support for Intel Wireless network devices.
.Pp
.Nm
is derived from Intel's Linux iwlwifi driver.
The
.Xr iwm 4
and
.Xr iwx 4
drivers together are approximately equivalent to Intel's Linux iwlwifi/mvm
driver.
.Pp
In addition
.Nm
already supports Intel's Linux iwlwifi/mld chipsets.
.Pp
.Nm
still complements the
.Xr iwn 4
driver which supports older chipsets and would be equivalent to
Intel's Linux iwlwifi/dvm, which
.Nm
does not support.
.Pp
The driver uses the
.\" No LinuxKPI man pages so no .Xr here.
.Sy linuxkpi_wlan
and
.Sy linuxkpi
compat framework to bridge between the Linux and
native
.Fx
driver code as well as to the native
.Xr net80211 4
wireless stack.
.Sh HARDWARE
The
.Nm
driver supports PCIe devices from the
.Sy mvm
sub-driver with the following chipset generations:
.Pp
.\" awk -F\\t '{ print $5 }' ~/tmp/iwlwifi_pci_ids_name.txt | \
.\" grep -v undefined | sort -V | uniq | grep -v ^$ | \
.\" awk '{ printf ".It\n%s\n", $0 }'
.Bl -bullet -compact
.It
7000
.It
8000
.It
9000
.It
22000
.It
AX210
.El
.Pp
The
.Nm
driver supports PCIe devices from the
.Sy mld
sub-driver with the following chipset generations:
.Pp
.Bl -bullet -compact
.It
BZ
.It
SC
.El
.Pp
These chipset generations match the following common device names:
.Pp
.Bl -bullet -compact
.\" --------------------------------------------------------------------
.\" This list is manually generated from a sysctl and post-processing.
.\" Edits will be overwritten on next update.
.\" awk -F\\t '{ if ($2 == "") { next; } if (seen[$2]) { next; } \
.\" seen[$2]=1; printf ".It\n%s\n", $2; }' iwlwifi_pci_ids_name.txt
.\" --------------------------------------------------------------------
.It
Intel(R) Dual Band Wireless AC 7260
.It
Intel(R) Dual Band Wireless N 7260
.It
Intel(R) Wireless N 7260
.It
Intel(R) Dual Band Wireless AC 3160
.It
Intel(R) Dual Band Wireless N 3160
.It
Intel(R) Wireless N 3160
.It
Intel(R) Dual Band Wireless AC 3165
.It
Intel(R) Dual Band Wireless AC 3168
.It
Intel(R) Dual Band Wireless AC 7265
.It
Intel(R) Wireless N 7265
.It
Intel(R) Dual Band Wireless N 7265
.It
Intel(R) Dual Band Wireless AC 8260
.It
Intel(R) Dual Band Wireless N 8260
.It
Intel(R) Dual Band Wireless AC 4165
.It
Intel(R) Dual Band Wireless AC 8265
.It
Intel(R) Dual Band Wireless AC 8275
.It
Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz
.It
Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
.It
Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
.It
Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz
.It
Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz
.It
Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)
.It
Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)
.It
Intel(R) Wireless-AC 9260-1
.It
Intel(R) Wi-Fi 6 AX200 160MHz
.It
Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W)
.It
Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW)
.It
Intel(R) Wi-Fi 6 AX201 160MHz
.It
Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)
.It
Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)
.It
Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW)
.It
Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W)
.It
Intel(R) Wi-Fi 6E AX211 160MHz
.It
Intel(R) Wi-Fi 6 AX210 160MHz
.It
Killer(R) Wi-Fi 6E AX1675w 160MHz Wireless Network Adapter (210D2W)
.It
Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW)
.It
Intel(R) Wi-Fi 6E AX411 160MHz
.It
Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
.It
Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
.It
Intel(R) Wireless-AC 9461 160MHz
.It
Intel(R) Wireless-AC 9461
.It
Intel(R) Wireless-AC 9462 160MHz
.It
Intel(R) Wireless-AC 9462
.It
Intel(R) Wireless-AC 9560 160MHz
.It
Intel(R) Wireless-AC 9560
.It
Intel(R) Wireless-AC 9270 160MHz
.It
Intel(R) Wireless-AC 9270
.It
Intel(R) Wireless-AC 9162 160MHz
.It
Intel(R) Wireless-AC 9162
.It
Intel(R) Wireless-AC 9260 160MHz
.It
Intel(R) Wireless-AC 9260
.It
Intel(R) Wi-Fi 6 AX101
.It
Intel(R) Wi-Fi 6 AX203
.It
Intel(R) Wi-Fi 6E AX231 160MHz
.It
Intel(R) Wi-Fi 7 BE201 320MHz
.It
Intel(R) Wi-Fi 7 BE200 320MHz
.It
Intel(R) Wi-Fi 7 BE202 160MHz
.It
Intel(R) TBD Sc device
.It
Intel(R) TBD Sc2 device
.It
Intel(R) TBD Sc2f device
.\" --------------------------------------------------------------------
.El
.Sh LOADER TUNABLES
The
.Nm
driver supports the following
.Xr loader 8
tunable and read-only
.Xr sysctl 8
variables:
.Bl -tag -width "compat.linuxkpi.iwlwifi_disable_11ac"
.It Va compat.linuxkpi.iwlwifi_11n_disable
Turn off 802.11n support in the driver.
Default
.Ql 1 .
.It Va compat.linuxkpi.iwlwifi_disable_11ac
Turn off 802.11ac support in the driver.
Default
.Ql 1 .
.El
.Pp
The names of the tunables are derived from the Linux iwlwifi driver
module parameters and are mapped automatically by
.Sy linuxkpi .
They were not adjusted so that they stay consistent with upstream
Linux, e.g., for documentation available and problem investigations.
This left their names inconsistent between themselves and incosistent to
.Fx
style.
.Pp
The tunables are automatically adjusted by the firmware package for
chipsets which can enable 11n and 11ac.
In case of problems a user may want to override the provided values
in
.Pa /boot/loader.conf.local
with the above defaults.
.Sh FILES
The
.Nm
driver requires firmware from
.Pa ports/net/wifi-firmware-iwlwifi-kmod .
This firmware package will be installed automatically with
.Xr fwget 8
if the appropriate hardware is detected at installation or runtime.
.Pp
As a last resort for bootstrapping, individual firmware files can be
manually downloaded, e.g., on a different computer and transferred using a
.Xr umass 4
device.
The firmware files can be found at
.Lk git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
with names as requested by the driver.
Copies should be placed into the
.Pa /boot/firmware
directory.
.Sh SEE ALSO
.Xr iwlwififw 4 ,
.Xr iwm 4 ,
.Xr iwn 4 ,
.Xr iwx 4 ,
.Xr wlan 4 ,
.Xr networking 7 ,
.Xr fwget 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh HISTORY
The
.Nm
driver first appeared in
.Fx 13.1 .
802.11n and 802.11ac support for the 22000 and later chipsets first appeared in
.Fx 14.3 .
.Sh BUGS
.Lk https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=iwlwifi "iwlwifi known bugs"
.Pp
While
.Nm
supports 802.11a/b/g/n/ac/ax/be modes,
the compatibility code currently only supports 802.11a/b/g/n/ac modes.
802.11n/ac is only available on the 22000 and later chipset generations.
802.11ax/be and 6Ghz support are planned.
